package com.luke.base.domain;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.luke.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 用户信息对象 lk_user
 * 
 * @author luke
 * @date 2021-05-27
 */
public class LkUser implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 用户id */
    private Long userId;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phonenumber;

    /** 密码 */
    @Excel(name = "密码")
    private String password;

    /** $column.columnComment */
    @Excel(name = "密码")
    private String nickName;

    /** 用户性别（0男 1女 2未知） */
    @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
    private String sex;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String address;

    /** 蓝牙设备号 */
    @Excel(name = "蓝牙设备号")
    private String deviceNumber;

    /** 头像地址 */
    @Excel(name = "头像地址")
    private String avatar;

    /** $column.columnComment */
    @Excel(name = "头像地址")
    private Long parentId;

    /** 注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    /** 0正常 1删除 */
    @Excel(name = "0正常 1删除")
    private Integer delStatus;

    /** 短信验证码 */
    private String code;

    private LkUser lkUser;

    List<LkEquipment> equipmentList;

    private Integer equipmentCount;

    /** 请求参数 */
    private Map<String, Object> params;

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setPhonenumber(String phonenumber) 
    {
        this.phonenumber = phonenumber;
    }

    public String getPhonenumber() 
    {
        return phonenumber;
    }
    public void setPassword(String password) 
    {
        this.password = password;
    }

    public String getPassword() 
    {
        return password;
    }
    public void setNickName(String nickName) 
    {
        this.nickName = nickName;
    }

    public String getNickName() 
    {
        return nickName;
    }
    public void setSex(String sex) 
    {
        this.sex = sex;
    }

    public String getSex() 
    {
        return sex;
    }
    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setDeviceNumber(String deviceNumber) 
    {
        this.deviceNumber = deviceNumber;
    }

    public String getDeviceNumber() 
    {
        return deviceNumber;
    }
    public void setAvatar(String avatar) 
    {
        this.avatar = avatar;
    }

    public String getAvatar() 
    {
        return avatar;
    }
    public void setParentId(Long parentId) 
    {
        this.parentId = parentId;
    }

    public Long getParentId() 
    {
        return parentId;
    }
    public void setCreateTime(Date creatTime)
    {
        this.createTime = creatTime;
    }

    public Date getCreateTime()
    {
        return createTime;
    }
    public void setDelStatus(Integer delStatus) 
    {
        this.delStatus = delStatus;
    }

    public Integer getDelStatus() 
    {
        return delStatus;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Map<String, Object> getParams()
    {
        if (params == null)
        {
            params = new HashMap<>();
        }
        return params;
    }

    public void setParams(Map<String, Object> params)
    {
        this.params = params;
    }

    public LkUser getLkUser() {
        return lkUser;
    }

    public void setLkUser(LkUser lkUser) {
        this.lkUser = lkUser;
    }

    public List<LkEquipment> getEquipmentList() {
        return equipmentList;
    }

    public void setEquipmentList(List<LkEquipment> equipmentList) {
        this.equipmentList = equipmentList;
    }

    public Integer getEquipmentCount() {
        return equipmentCount;
    }

    public void setEquipmentCount(Integer equipmentCount) {
        this.equipmentCount = equipmentCount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("phonenumber", getPhonenumber())
            .append("password", getPassword())
            .append("nickName", getNickName())
            .append("sex", getSex())
            .append("birthday", getBirthday())
            .append("address", getAddress())
            .append("deviceNumber", getDeviceNumber())
            .append("avatar", getAvatar())
            .append("parentId", getParentId())
            .append("createTime", getCreateTime())
            .append("delStatus", getDelStatus())
            .toString();
    }
}
